/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package pojo;

import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 *
 * @author pvhuy
 */
@Entity
@Table(name=LoaiNhanVien.TABLE_LOAINHANVIEN)
public class LoaiNhanVien extends Base{
    public static final String TABLE_LOAINHANVIEN = "LoaiNhanVien";

    protected static final String COLUMN_TENLOAINHANVIEN = "TenLoaiNhanVien";
    private static final int LENGTH_TENLOAINHANVIEN = 45;
    @Column(name=COLUMN_TENLOAINHANVIEN, length=LENGTH_TENLOAINHANVIEN, nullable=false)
    private String tenLoaiNhanVien;

    //Mapping
    @OneToMany(mappedBy="loaiNhanVien", cascade=CascadeType.ALL)
    private Set<NhanVien> danhSachNhanVien;

    @ManyToMany(cascade=CascadeType.ALL)
    @JoinTable(name="PhanQuyen", joinColumns= {@JoinColumn(name="MaLoaiNhanVien")},
    inverseJoinColumns={@JoinColumn(name="MaChucNang")})
    private Set<ChucNang> danhSachChucNang;

    /**
     * @return the tenLoaiNhanVien
     */
    public String getTenLoaiNhanVien() {
        return tenLoaiNhanVien;
    }

    /**
     * @param tenLoaiNhanVien the tenLoaiNhanVien to set
     */
    public void setTenLoaiNhanVien(String tenLoaiNhanVien) {
        this.tenLoaiNhanVien = tenLoaiNhanVien;
    }

    /**
     * @return the danhSachNhanVien
     */
    public Set<NhanVien> getDanhSachNhanVien() {
        return danhSachNhanVien;
    }

    /**
     * @param danhSachNhanVien the danhSachNhanVien to set
     */
    public void setDanhSachNhanVien(Set<NhanVien> danhSachNhanVien) {
        this.danhSachNhanVien = danhSachNhanVien;
    }

    /**
     * @return the danhSachChucNang
     */
    public Set<ChucNang> getDanhSachChucNang() {
        return danhSachChucNang;
    }

    /**
     * @param danhSachChucNang the danhSachChucNang to set
     */
    public void setDanhSachChucNang(Set<ChucNang> danhSachChucNang) {
        this.danhSachChucNang = danhSachChucNang;
    }


}
